Skip to content

fix(tools): sanitize ExploreCode queries for Cymbal FTS5 safety#570

Merged
dwash96 merged 1 commit into
cecli-dev:v0.100.6from
Digital-Defiance:pr/explore-code-cymbal-safety
Jun 11, 2026
Merged

fix(tools): sanitize ExploreCode queries for Cymbal FTS5 safety#570
dwash96 merged 1 commit into
cecli-dev:v0.100.6from
Digital-Defiance:pr/explore-code-cymbal-safety

Conversation

@JessicaMulein

Copy link
Copy Markdown

Summary

py-cymbal's Cymbal CLI interprets hyphens in search queries as SQL FTS5 NOT operators, causing no such column crashes when the model passes hyphenated terms like vault-store or home-entry.

Sanitizes all symbol queries by replacing hyphens with underscores before passing to Cymbal. This is semantically correct (code symbols use underscores, not hyphens) and prevents the crash regardless of which py-cymbal version is installed.

The root cause is in py-cymbal's Go binary (unquoted FTS5 input) — reported to dwash. This cecli-side workaround provides immediate defense.

Test plan

  • python -m pytest tests/ -x -q — 414 passed
  • Manual: ExploreCode with vault-store no longer crashes with SQL error

py-cymbal's Cymbal CLI interprets hyphens in search queries as SQL FTS5
NOT operators, causing 'no such column' crashes when the model passes
hyphenated terms like 'vault-store' or 'home-entry'.

Sanitize all symbol queries by replacing hyphens with underscores before
passing to Cymbal. This is semantically correct (code symbols use
underscores, not hyphens) and prevents the crash regardless of which
py-cymbal version is installed.

The root cause is in py-cymbal's Go binary (unquoted FTS5 input) — a
fix has been reported to the Cymbal team (dwash). This cecli-side
workaround provides immediate defense.
@dwash96 dwash96 changed the base branch from main to v0.100.6 June 11, 2026 17:57
@dwash96 dwash96 merged commit 7f1d017 into cecli-dev:v0.100.6 Jun 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants